SQL Stored Procedure
Общее описание
Блок SQL Stored Procedure предназначен для вызова хранимых процедур в реляционных базах данных в рамках потока обработки сообщений. Компонент встраивается в поток и выполняет взаимодействие с БД: передает входные параметры, вызывает процедуру и обрабатывает результаты.
Механизм работает следующим образом: блок SQL Stored Procedure получает сообщение из потока, извлекает из него параметры для вызова хранимой процедуры (из payload или заголовков), формирует и отправляет запрос к БД через настроенное JDBC‑соединение.
Блок SQL Stored Procedure может использоваться в качестве:
- блока отправителя.
Настройка блока
В данном разделе описаны параметры блока SQL Stored Procedure, которые необходимо заполнить при его настройке.
Базовые параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Dynamic Endpoint | dynamicEndpoint | Параметр позволяет включить встроенную функциональность динамического определения вызываемой конечной точки. При включении параметра структура блока меняется таким образом, что в коде вместо определения to проставляется "toD", а значение самого вызываемого ресурса может собираться из переменной, например ${header.foo}. | True | Логическое значение |
| Template | template | Устанавливает шаблон хранимой процедуры для выполнения. Вы можете вынести шаблон во внешний файл, используя префиксы file: или classpath: и указав расположение файла. | Строка | |
| Connection | connection | Этот параметр позволяет выбрать предсозданное подключение к БД или создать новое с помощью визарда Connection Manager. | Список | |
| Description | description | Краткое описание блока. | Строка | |
| Batch | batch | Определяет, выполнять ли вызовы хранимой процедуры в пакетном режиме (batch). При значении True позволяет передавать массивы данных и выполнять процедуру многократно за один вызов. Подходит для массовых операций вставки/обновления. | False | Логическое значение |
| Function | function | Указывает, что вызываемый объект БД — функция (а не процедура). При активации компонента ожидает возврата значения, которое будет включено в результат. Если False, вызывается процедура. Функция всегда возвращает значение (скаляр или набор данных), которое помещается в payload или заголовок (в зависимости от настроек). Пример: вызов функции calculate_total(order_id) для получения итоговой суммы заказа. | False | Логическое значение |
| Noop | noop | Режим «без операции» (No Operation). При значении True блок не выполняет вызов БД, а просто передает входящее сообщение дальше по потоку. Используется для отладки, тестирования или временного отключения функционала без удаления блока из потока. В этом режиме игнорируются все остальные параметры, кроме OutputHeader. | False | Логическое значение |
| Output Header | outputHeader | Имя заголовка сообщения, в который будут помещены результаты выполнения хранимой процедуры (вместо замены тела сообщения — payload). Позволяет сохранить исходное сообщение и добавить к нему метаданные из БД. Формат результата: JSON‑объект или XML с данными из ResultSet/выходных параметров. | Строка | |
| Use Message Body For Template | useMessageBodyForTemplate | Определяет, использовать ли тело сообщения (payload) в качестве шаблона SQL‑запроса/хранимой процедуры. При True содержимое payload интерпретируется как SQL‑код. Повышает гибкость, но требует осторожности из‑за риска SQL‑инъекций. Требования: payload должен содержать корректный SQL‑код или вызов процедуры (например, CALL my_proc(?, ?)). Рекомендуется использовать только в доверенных сценариях или с предварительной санизацией данных. | False | Логическое значение |
Расширенные параметры
| Название в UI | Название атрибута | Описание | Значение по умолчанию | Тип данных |
|---|---|---|---|---|
| Lazy Start Producer | lazyStartProducer | Определяет, должен ли отправитель стартовать в отложенном режиме, т. е. при получении первого сообщения. Для выявления ошибок и отладки при активации потока выставьте значение False. Если поток используется редко или необходима его быстрая активация, выставьте значение True. Учтите, что обработка первого сообщения в этом случае будет замедлена. | False | Логическое значение |
| Template Options | templateOptions | Настраивает Spring JdbcTemplate с помощью пар ключ/значение из карты (Map). | Строка | |
| Pattern | pattern | Шаблон взаимодействия (Exchange Pattern) для обмена сообщениями. Определяет направление потока данных между его компонентами. Возможные значения:
| Список | |
| Disabled | disabled | Определяет, будет ли блок отключен в потоке. В активированном потоке функциональность блока не будет отрабатываться. | False | Логическое значение |